package com.example.wenhua.service;

import com.example.wenhua.entity.Course;
import java.util.List;
import java.util.Map;
import java.math.BigDecimal;

/**
 * 课程业务逻辑接口
 */
public interface CourseService {
    
    /**
     * 查询所有课程
     */
    List<Course> getAllCourses();
    
    /**
     * 根据筛选条件查询课程
     */
    List<Course> getCoursesWithFilter(String cno, String cname, String teacher);
    
    /**
     * 根据课程号查询课程
     */
    Course getCourseByCno(String cno);
    
    /**
     * 根据教师名查询课程
     */
    List<Course> getCoursesByTeacher(String teacher);
    
    /**
     * 新增课程
     */
    boolean addCourse(Course course);
    
    /**
     * 更新课程信息
     */
    boolean updateCourse(Course course);
    
    /**
     * 删除课程
     */
    boolean deleteCourse(String cno);
    
    /**
     * 获取课程详细信息（包含选课人数）
     */
    Map<String, Object> getCourseDetailByCno(String cno);
    
    /**
     * 获取课程统计信息
     */
    Map<String, Object> getCourseStatsByCno(String cno);
    
    /**
     * 获取课程平均分
     */
    BigDecimal getCourseAverageGrade(String cno);
    
    /**
     * 获取所有课程的平均分统计
     */
    List<Map<String, Object>> getAllCoursesAverageGrade();
    
    /**
     * 获取所有课程的整体平均成绩
     */
    BigDecimal getOverallAverageScore();
}